Title Banner

Previous Book Contents Book Index Next

Inside Macintosh: QuickDraw GX Printing Extensions and Drivers /
Chapter 6 - Printing Resources


Summary of Printing Resources

C Summary

Constants and Data Types

   /* basic client types */
#define gxPrintingManagerType 'pmgr'
#define gxPrinterDriverType   'pdvr'
#define gxPrintingExtensionType'pext'
#define gxAnyPrinterType      'univ'
#define gxPortableDocPrinterType 'gxpd'

#define gxRasterPrinterType   'rast'
#define gxPostscriptPrinterType'post'
#define gxVectorPrinterType   'vect'
#define gxPrintingTagID (-28672) /* gxTag ID for printing collections */
/* 
   The following constants are for resources used by both extensions and
   drivers.
*/
      /* base IDs for extension & driver resources */
#define gxPrintingDriverBaseID (-28672)
#define gxPrintingExtensionBaseID (-27136)
#define gxOverrideType  'over'      /* override resource type */
#define gxDriverUniversalOverrideID       (gxPrintingDriverBaseID)
#define gxDriverImagingOverrideID         (gxPrintingDriverBaseID + 1)
#define gxDriverCompatibilityOverrideID   (gxPrintingDriverBaseID + 2)
#define gxExtensionUniversalOverrideID          gxPrintingExtensionBaseID
#define gxExtensionImagingOverrideSelectorID    gxPrintingExtensionBaseID
/* 
   The following constants are used to identify printing messages for use
   in both extensions and drivers.
*/
         /* identifiers for universal message overrides... */

#define gxInitialize             0
#define gxShutDown               1

#define gxJobIdle                2
#define gxJobStatus              3
#define gxPrintingEvent          4

#define gxJobFormatDialog        5
#define gxFormatDialog           6
#define gxJobPrintDialog         7
#define gxFilterPanelEvent       8
#define gxHandlePanelEvent       9
#define gxParsePageRange         10

#define gxDefaultJob             11
#define gxDefaultFormat          12
#define gxDefaultPaperType       13
#define gxDefaultPrinter         14

#define gxCreateSpoolFile        15
#define gxSpoolPage              16
#define gxSpoolData              17
#define gxSpoolResource          18
#define gxCompleteSpoolFile      19

#define gxCountPages             20
#define gxDespoolPage            21
#define gxDespoolData            22
#define gxDespoolResource        23
#define gxCloseSpoolFile         24

#define gxStartJob               25
#define gxFinishJob              26
#define gxStartPage              27
#define gxFinishPage             28
#define gxPrintPage              29

#define gxSetupImageData         30
#define gxImageJob               31
#define gxImageDocument          32
#define gxImagePage              33
#define gxRenderPage             34
#define gxCreateImageFile        35

#define gxOpenConnection         36
#define gxCloseConnection        37
#define gxStartSendPage          38
#define gxFinishSendPage         39

#define gxWriteData              40
#define gxBufferData             41
#define gxDumpBuffer             42
#define gxFreeBuffer             43

#define gxCheckStatus            44
#define getDeviceStatus          45

#define gxFetchTaggedData        46

#define gxGetDTPMenuList         47
#define gxDTPMenuSelect          48
#define gxDTPHandleAlertFilter   49

#define gxJobFormatModeQuery     50

#define gxWriteStatusToDTPWindow 51
#define gxInitializeStatusAlert  52
#define gxHandleAlertStatus      53
#define gxHandleAlertEvent       54

#define gxCleanupStartJob        55
#define gxCleanupStartPage       56
#define gxCleanupOpenConnection  57
#define gxCleanupStartSendPage   58

#define gxDefaultDesktopPrinter  59
#define gxCaptureOutputDevice    60

#define gxOpenConnectionRetry    61
#define gxExamineSpoolFile       62

#define gxFinishSendPlane        63
#define gxDoesPaperFit           64
#define gxChooserMessage         65

#define gxFindPrinterProfile     66
#define gxFindFormatProfile      67
#define gxSetPrinterProfile      68
#define gxSetFormatProfile       69
      /* identifiers for Macintosh Printing Manager message overrides */
#define gxPrOpenDoc              0
#define gxPrCloseDoc             1
#define gxPrOpenPage             2
#define gxPrClosePage            3
#define gxPrintDefault           4
#define gxPrStlDialog            5
#define gxPrJobDialog            6
#define gxPrStlInit              7
#define gxPrJobInit              8
#define gxPrDlgMain              9
#define gxPrValidate             10
#define gxPrJobMerge             11
#define gxPrGeneral              12
#define gxConvertPrintRecordTo   13
#define gxConvertPrintRecordFrom 14
#define gxPrintRecordToJob       15
   /* identifiers for raster imaging message overrides */
#define gxRasterDataIn           0
#define gxRasterLineFeed         1
#define gxRasterPackageBitmap    2
   /* identifiers for PostScript imaging message overrides */
#define gxPostscriptQueryPrinter                0
#define gxPostscriptInitializePrinter           1
#define gxPostscriptResetPrinter                2
#define gxPostscriptExitServer                  3
#define gxPostscriptGetStatusText               4
#define gxPostscriptGetPrinterText              5
#define gxPostscriptScanStatusText              6
#define gxPostscriptScanPrinterText             7
#define gxPostscriptGetDocumentProcSetList      8
#define gxPostscriptDownloadProcSetList         9
#define gxPostscriptGetPrinterGlyphsInformation 10
#define gxPostscriptStreamFont                  11
#define gxPostscriptDoDocumentHeader            12
#define gxPostscriptDoDocumentSetUp             13
#define gxPostscriptDoDocumentTrailer           14
#define gxPostscriptDoPageSetUp                 15
#define gxPostscriptSelectPaperType             16
#define gxPostscriptDoPageTrailer               17
#define gxPostscriptEjectPage                   18
#define gxPostscriptProcessShape                19
   /* identifiers for vector imaging message overrides */
#define gxVectorPackageData         0
#define gxVectorLoadPens            1
#define gxVectorVectorizeShape      2
   /* identifiers for status message types */ */
enum { */
   gxNonFatalError = 1,       /* effects icon on spooling dialog */
   gxFatalError = 2,          /* sends up printng alert on spooling dialog */
   gxPrinterReady = 3,        /* signals QuickDraw GX to leave alert mode */
   gxUserAttention = 4,       /* signals initiation of a modal alert */
   gxUserAlert = 5,           /* signals initiation of a moveable modal 
                                  alert */
   gxPageTransmission = 6,    /* signals page sent to printer, increments
                                  page count in strings to user */
   gxOpenConnectionStatus = 7,/* signals QuickDraw GX to begin animation
                                  on printer icon */
   gxInformationalStatus = 8, /* default status type, no side effects */
   gxSpoolingPageStatus = 9,  /* signals page spooled, increments page
                                  count in spooling dialog */
   gxEndStatus = 10,          /* signals end of spooling */
   gxPercentageStatus = 11    /* signals the QuickDraw GX as to the amount
                                  of the job that is currently complete */
};
/* 
   The following resource types and IDs are used by extensions.
*/
#define gxExtensionScopeType  'scop'
#define gxDriverScopeID             gxPrintingExtensionBaseID
#define gxPrinterScopeID            gxPrintingExtensionBaseID+1
#define gxPrinterExceptionScopeID   gxPrintingExtensionBaseID+2
#define gxExtensionLoadType'load'
#define gxExtensionLoadID        gxPrintingExtensionBaseID
#define gxExtensionLoadFirst  0x00000100
#define gxExtensionLoadAnywhere0x7FFFFFFF
#define gxExtensionLoadLast   0xFFFFFF00
#define gxExtensionOptimizationType'eopt'
#define gxExtensionOptimizationID   gxPrintingExtensionBaseID
      /* extension optimization values*/
#define gxExecuteDuringImaging         TRUE
#define gxNeedDeviceStatus             TRUE
#define gxChangePageAtGXDespoolPage    TRUE
#define gxChangePageAtGXImagePage      TRUE
#define gxChangePageAtGXRenderPage     TRUE
#define serverPresenceRequired         FALSE
#define clientPresenceRequired         FALSE
#define dontexecuteDuringImaging       FALSE
#define dontneedDeviceStatus           FALSE
#define dontchangePageAtDespoolPage    FALSE
#define dontchangePageAtImagePage      FALSE
#define dontchangePageAtRenderPage     FALSE
#define notServerPresenceRequired      FALSE
#define notClientPresenceRequired      FALSE
/*
   The following resource types and IDs are used by writers of printer
   drivers.
*/
   /* imaging Resources */
#define gxImagingSystemSelectorType'isys'
#define gxImagingSystemSelectorID(gxPrintingDriverBaseID)
   /* raster rendering preferences resources */
#define gxRasterPrefsType     'rdip'
#define gxRasterPrefsID       gxPrintingDriverBaseID
   /* resource type for specifiying a color set*/
#define gxColorSetResType     'crst'
   /* resource type and ID for raster generic driver packaging preferences */
#define gxRasterPackType      'rpck'
#define gxRasterPackID        gxPrintingDriverBaseID
   /* resource type and ID for raster generic driver packaging options */
#define gxRasterNumNone    0  /* number isn't output at all */
#define gxRasterNumDirect  1  /* lowest minWidth bytes as data */
#define gxRasterNumToASCII 2  /* minWidth ASCII characters */
#define gxRasterPackOptionsType'ropt'
#define gxRasterPackOptionsID    gxPrintingDriverBaseID
   /* resource type for the PostScript procedure set control resource */
#define gxPostscriptProcSetControlType 'prec'
   /* resource type for the PostScript printer gxFont resource */
#define gxPostscriptPrinterFontType 'pfnt'
   /* resource type and id for the PostScript imaging preferences */
#define gxPostscriptPrefsType    'pdip'
#define gxPostscriptPrefsID      gxPrintingDriverBaseID
   /* resource type and id for the PostScript default scanning code */
#define gxPostscriptScanningType 'scan'
#define gxPostscriptScanningID0
   /* resource for type for color matching */
#define gxColorMatchingDataType  'prof'
#define gxColorMatchingDataID    gxPrintingDriverBaseID
   /* resource type and id for the default bin and paper specifications */
#define gxTrayCountDataType   'tray'
#define gxTrayCountDataID     gxPrintingDriverBaseID
/* 
   The following resource types and IDs are used to define input and output
   parameters for printer drivers.
*/
   /* resource type and ID for default IO and buffering resources */
#define gxUniveralIOPrefsType 'iobm'
#define gxUniversalIOPrefsID  gxPrintingDriverBaseID
   /* resource defines for default implementation of */
   /*  GXCaptureOutputDevice, which only handles PAP devices */
#define gxCaptureType            'cpts'
#define gxCaptureStringID        (gxPrintingDriverBaseID)
#define gxReleaseStringID        (gxPrintingDriverBaseID + 1)
#define gxUncapturedAppleTalkType(gxPrintingDriverBaseID + 2)
#define gxCapturedAppleTalkType  (gxPrintingDriverBaseID + 3)
   /* resource type and ID for driver papertypes in individual files */
#define gxSignatureType       'sig '
#define gxPapertypeSignatureID   0
   /* file type for driver papertypes placed in individual files */
#define gxDrvrPaperType    'drpt'
/* 
   The following resource types and IDs are used to support Macintosh
   Printing Manager compatibility.
*/
#define gxCustType   'cust'
#define gxCustID     -8192
#define gxReslType 'resl'
#define gxReslID  -8192
#define gxDiscreteResolution 0

#define gxStlDialogResID -8192
#define gxJobDialogResID -8191

The Buffering and I/O Preferences Structure

struct gxIoPrefsRec {
   unsigned long  communicationsOptions;  /* options for input & output */
   unsigned long  numBuffers;             /* number of buffers to allocate */
   unsigned long  bufferSize;             /* number of bytes per buffer */
   unsigned long  numReqBlocks;           /* number of I/O request blocks */
   unsigned long  openCloseTimeout;       /* timeout for open and close */
   unsigned long  readWriteTimeout        /* timeout for read and write */
};
typedef struct gxIOPrefsRec gxIOPrefsRec, *gxIOPrefsPtr, **gxIOPrefsHdl;

The Customization Structure

struct gxCustomizationRec {
   short horizontalResolution;   /* horizontal resolution */
   short verticalResolution;     /* vertical resolution */
   short upDriverType;           /* type of Macintosh Printing Manager
                                     interface to use */
   Point patternStretch;         /* pattern stretching factor */
   short translatorSettings      /* settings for translator */
};
typedef struct gxCustomizationRec gxCustomizationRec, *gxCustomizationPtr, 
**gxCustomizationHdl;

The Resolution Structure

struct gxResolutionRec {
   short    rangeType;           /* always 1 */
   short    xMinimumResolution;
   short    xMaximumResolution;
   short    yMinimumResolution;
   short    yMaximumResolution;
   short    resolutionCount;
   Point    resolutions[1];      /* array of points */
};
typedef struct gxResolutionRec gxResolutionRec, *gxResolutionPtr, 
**gxResolutionHdl;

Raster Preferences Structure

struct gxRasterPrefsRec {
   gxRasterRenderOptions
               renderOptions;    /* raster imaging options */
   Fixed       hImageRes;        /* horiz imaging resolution */
   Fixed       vImageRes;        /* vert imaging resolution */
   short       minBandSize;      /* minimum band size to use */
   short       maxBandSize;      /* maximum band size to use */
   Fixed       ramPercentage;    /* maximum percentage of RAM to use */
   long        ramSlop;          /* minimum RAM to leave free */
   short       depth;            /* depth, in pixels, per plane*/
   short       numPlanes;        /* number of planes to render */
   gxPlaneSetupRec
               planeSetup[1];    /* one for each plane */
};
typedef struct gxRasterPrefsRec gxRasterPrefsRec, *gxRasterPrefsPtr, 
**gxRasterPrefsHdl;

Raster Render Options

typedef long gxRasterRenderOptions;
enum {
   gxDefaultRaster   = 0x00000000,  /* default options */
   gxDontResolveTransferModes
                     = 0x00000001,  /* 0 means resolve, 1 means don't */
   gxRenderInReverse = 0x00000002,  /* traverse in reverse */
   gxOnePlaneAtATime = 0x00000004,  /* render each separately */
   gxSendAllBands    = 0x00000008   /* send all bands, even if empty */
};

Raster Package Structure

struct gxRasterPackageRec {
   Ptr      bufferSize;    /* buffer size of packaging */
   short    colorPasses;   /* number of color passes */
   short    headHeight;    /* height of print head in pixels */
   short    numberPasses;  /* number of passes per head height */
   short    passOffset;    /* offset between passes, in pixels */
   gxRasterPackgeOptions
            packageOptions;/* packaging options */
};
typedef struct gxRasterPackageRec gxRasterPackageRec, *gxRasterPackagePtr, 
**gxRasterPackageHdl;

Raster Package Options

enum {      /* bit fields in gxRasterPackageOptions */
   gxSendAllColors   = 0x00000001,  /* send all bands, even if empty */
   gxInterlaceColor  = 0x00000002,  /* ribbon contamination */
   gxOverlayColor    = 0x00000004,  /* no ribbon problem */
   gxUseColor        = (gxInterlaceColor|gxOverlayColor);
};
typedef long gxRasterPackageOptions;

Raster Package Controls Structure

struct gxRasterPackageControlsRec {
   short    startPageStringID;   /* ID of string to send at start of page */
   short    formFeedStringID;    /* ID of string to send for form feed */
   short    forwardMax;          /* maximum amount of forward line feed */
   gxStandardNumberRec
            forwardLineFeed;     /* number struct to express line feed */
   short    reverseMax;          /* maximum amount of reverse line feed */
   gxStandardNumberRec
            reverseLineFeed;     /* number struct to express reverse line
                                     feed */
};
typedef struct gxRasterPackageControlsRec gxRasterPackageControlsRec, 
*gxRasterPackageControlsPtr, **gxRasterPackageControlsHdl;

Standard Number Structure

struct gxStandardNumberRec {
   short    numberType;    /* type of numeric output desired */
   short    minWidth;      /* minimum output width of number */
   char     padChar;       /* pad character */
   char     alignment;
   Str31    startString;   /* the prefix string */
   Str31    endString;     /* the postfix string */
};
typedef struct gxStandardNumberRec gxStandardNumberRec, *gxStandardNumberPtr;


Previous Book Contents Book Index Next

© Apple Computer, Inc.
7 JUL 1996




Navigation graphic, see text links

Main | Page One | What's New | Apple Computer, Inc. | Find It | Contact Us | Help